package com.dzsw.netty.weakref;

import java.lang.ref.ReferenceQueue;

public class WeekRef {


    public static void main(String[] args) throws Exception {
        //队列
        ReferenceQueue q = new ReferenceQueue();
        //为了在GC时能够回收MyReference引用的对象，我们放一个1G的二进制数据
        //放小对象测试不出效果
        MyWeakRef e = new MyWeakRef(new byte[1024400000], q);
        //可以获取到它引用的对象，说明还没被回收
        System.out.println(e.get());
        System.gc();
        //这时返回null 说明GC以后MyReference引用的byte被回收了
        System.out.println(e.get());
        //MyReference对象被加入到队列里，我们可以最最后的资源清理
        System.out.println("q:" + q.poll());
    }
}
